package com.xydtech.ecard.ecard.service;

import com.xydtech.ecard.ecard.domain.EcardApiMerchantHandover;
import com.xydtech.ecard.ecard.domain.EcardApiMerchantInfo;

import java.util.List;

/**
 * 电子名片商户信息Service接口
 *
 * @author yjs
 * @date 2023-07-25
 */
public interface IEcardApiMerchantInfoService {
    /**
     * 查询电子名片商户信息
     *
     * @param id 电子名片商户信息主键
     * @return 电子名片商户信息
     */
    public EcardApiMerchantInfo selectEcardMerchantInfoById(Long id, String salt);

    /**
     * 查询电子名片商户信息
     * @param id
     * @param creatorId
     * @return
     */
    public EcardApiMerchantInfo selectEcardMerchantInfoByIdAndCreatorId(Long id,Long creatorId);

    /**
     * 查询电子名片商户信息列表
     *
     * @param ecardMerchantInfo 电子名片商户信息
     * @return 电子名片商户信息集合
     */
    public List<EcardApiMerchantInfo> getMerchantList(EcardApiMerchantInfo ecardMerchantInfo);

    /**
     * 查询电子名片我的商户信息列表
     *
     * @param ecardMerchantInfo 电子名片商户信息
     * @return 电子名片商户信息集合
     */
    public List<EcardApiMerchantInfo> getMyMerchantInfoList(EcardApiMerchantInfo ecardMerchantInfo, String salt);

    /**
     * 保存电子名片商户信息
     *
     * @param ecardMerchantInfo 电子名片商户信息
     * @return 结果
     */
    public int addMerchantInfo(EcardApiMerchantInfo ecardMerchantInfo, String salt);

    /**
     * 唯一值验证，相同行业、支行、门头名不能重复
     *
     * @author yjs
     * @date 2023/7/26 14:26
     */
    public int validateMerchantInfo(EcardApiMerchantInfo ecardMerchantInfo);


    /**
     * 根据ID修改商户状态
     *
     * @author yjs
     * @date 2023/7/27 10:35
     */
    public int changeMerchantStatus(Long id);

    /**
     * 查询地图坐标列表
     *
     * @author yjs
     * @date 2023/7/27 16:21
     */
    public List<EcardApiMerchantInfo> getMerchantCoordinateList(Long creatorId, Long deptId,Integer industry);
    /**
     * 根据法人机构ID查询机构下所有商户坐标信息列表
     * @author yjs
     * @date 2023/8/1 14:18
     */
    public List<EcardApiMerchantInfo> getAllMerchantCoordinateList(Long creatorId, Long deptId,Integer industry);

    /**
     * 个人/商户/企业/新型农业主体/行业客户转交
     * @author yjs
     * @date 2023/7/28 14:48
     */
    public int addMerchantTransferInfo(EcardApiMerchantHandover ecardMerchantHandover);

    /**
     * 查询个人/商户/企业/新型农业主体网格任务总条数接口
     * @param registId
     * @return
     */
    int getMerchantTaskTotalNum(Long registId);

    /**
     * 分词查询商户/企业/新型农业主体信息
     * @param licenseName
     * @param merchantType
     * @param registId
     * @param deptId
     * @return
     */
    List<EcardApiMerchantInfo> selectParticipleEcardMerchantInfo(String licenseName, String merchantType, Long registId, Long deptId, String salt);
}
